//引入对应模块
import Vue from 'vue'
import VueRouter from 'vue-router'
import {routes} from './routes'

//注册路由模块
Vue.use(VueRouter)

    // 原型上修改push方法
    const originPush = VueRouter.prototype.push  // 先将之前的存储到一个变量当中
    const originReplace = VueRouter.prototype.replace // 同上

    // 修改VueRouter原型上的push 用于解决重复跳转时报错的问题
    VueRouter.prototype.push = function(location,okCallBack,errCallBack){
      if(okCallBack === undefined && errCallBack === undefined){
        // 上面的判断成立的话，表示没有传递这两个参数
        originPush.call(this,location).catch(()=>{})  // 统一处理报错的问题 一劳永逸
      }else {
        originPush.call(this,location,okCallBack,errCallBack)
      }
    }

    // 修改VueRouter原型上的replace 用于解决重复跳转时报错的问题
    VueRouter.prototype.replace = function(location,okCallBack,errCallBack){
      if(okCallBack === undefined && errCallBack === undefined){
        // 上面的判断成立的话，表示没有传递这两个参数
        originReplace.call(this,location).catch(()=>{})  // 统一处理报错的问题 一劳永逸
      }else {
        originReplace.call(this,location,okCallBack,errCallBack)
      }
    }

//设置路由信息
const router = new VueRouter({
    mode:'history',
    routes,
    scrollBehavior(to,from,savedPosition) {
      if(savedPosition){
        return savedPosition
      }else{
        return { x:0 , y:0 }
      }
    }
})

export default router
